<template>
 <div v-if="item.isRange">
    <el-date-picker
      style="width:110px;"
      v-model="item.startTime"
      @change="changeStartTime"
      :clearable="false"
      :editable="false"
      type="year"
      value-format="yyyy"
      placeholder="选择年">
    </el-date-picker>
    <el-date-picker
      style="width:110px;"
      v-model="item.endTime"
      @change="changeEndTime"
      :clearable="false"
      :editable="false"
      type="year"
      value-format="yyyy"
      placeholder="选择年">
    </el-date-picker>
 </div>
 <div v-else>
    <el-date-picker
    style="width:110px;"
    v-model="item.startTime"
    @change="change"
    :clearable="false"
    :editable="false"
    type="year"
    value-format="yyyy"
    placeholder="选择年">
  </el-date-picker>
 </div>
</template>
<script>
export default {
  data() {
    return {
      item: {
        startTime: '',
        endTime: '',
        isRange: false
      }
    };
  },
  methods: {
    changeStartTime(val) {
      this.item.startTime = this.$moment(val).startOf('years').format('YYYY-MM-DD HH:mm:ss');
      this.$emit('change', this.item);
    },
    changeEndTime(val) {
      this.item.endTime = this.$moment(val).endOf('years').format('YYYY-MM-DD HH:mm:ss');
      this.$emit('change', this.item);
    },
    change(val) {
      if (val) {
        const item = JSON.parse(JSON.stringify(this.item));
        item.startTime = this.$moment(val).startOf('years').format('YYYY-MM-DD HH:mm:ss');
        item.endTime = this.$moment(val).endOf('years').format('YYYY-MM-DD HH:mm:ss');
        this.$emit('change', item);
      }
    }
  },
  created() {
    this.item = Object.assign(this.item, JSON.parse(JSON.stringify(this.$attrs)));
    if (this.item.isRange) {
      if (this.item.startTime) {
        this.item.startTime = this.$moment(this.item.startTime).startOf('years').format('YYYY-MM-DD') + ' 00:00:00';
      } else {
        this.item.startTime = this.$moment().subtract(1, 'years').startOf('years').format('YYYY-MM-DD') + ' 00:00:00';
      }
      if (this.item.endTime) {
        this.item.endTime = this.$moment(this.item.endTime).endOf('years').format('YYYY-MM-DD') + ' 23:59:59';
      } else {
        this.item.endTime = this.$moment().endOf('years').format('YYYY-MM-DD') + ' 23:59:59';
      }
    } else {
      if (this.item.startTime) {
        this.item.startTime = this.$moment(this.item.startTime).startOf('years').format('YYYY-MM-DD') + ' 00:00:00';
        this.item.endTime = this.$moment(this.item.startTime).endOf('years').format('YYYY-MM-DD') + ' 23:59:59';
      } else {
        this.item.startTime = this.$moment().startOf('years').format('YYYY-MM-DD') + ' 00:00:00';
        this.item.endTime = this.$moment().endOf('years').format('YYYY-MM-DD') + ' 23:59:59';
      }
    }
    this.$emit('change', this.item);
  }
};
</script>